/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：CustomFigure<br>
 * 日期：2018年8月30日<br>
 * 作者: 王志远<br>
 * 功能：自定义模型图元<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/
Rainier.UI.V2.CustomFigure = Rainier.UI.V2.DeviceBoxFigure.extend({
    
    NAME : "Rainier.UI.V2.CustomFigure",
    
    
    init: function(attr, setter, getter ){

        this._super(attr);
        
        var policyAttrs = {recBgColor:'#0BF60E',lineColor:'#2C70FF',};
        this.installEditPolicy(new Rainier.UI.V2.RectangleSelectionFeedbackPolicy(policyAttrs));
    },
    
    /**
     * @名称   repaint
     * @功能   绘制图元
     * @author 杨顺强
     * @data   2017-09-21
     * @param  {[type]}   attributes [description]
     * @return {[type]}              [description]
     */
    repaint : function(attributes){
        this._super(attributes);
    },

     /**
     * @名称   setSvgString
     * @功能   设置模型的 svg 图片
     * @author 杨顺强
     * @data   2017-09-21
     * @param  {[type]}   svgString [description]
     */
    setSvgString : function(svgString,imageWidth,imageHeight){
        this.svgString = svgString;
        // this.width = imageWidth;
        // this.height = imageHeight;
        // this.uiProperty.imageWidth = imageWidth;
        // this.uiProperty.imageHeight = imageHeight;
        // this.uiProperty.width = imageWidth;
        // this.uiProperty.height = imageHeight;
        var attrs = {
            src : svgString
        }
        // this.repaint(attrs);
        var canvas = this.canvas;

        //此处重在重新计算 图元需要显示的图形
        this.setCanvas(null);
        this.setCanvas(canvas);
        this.setPosition(this.x,this.y);
    },

    /**
     * @名称   setSvgWidth
     * @功能   设置模型的宽度
     * @author 李姣
     * @data   2018-10-31
     * @param  {[type]}   imageWidth [description]
     */
    setSvgWidth : function(imageWidth){
        this.width = imageWidth;
        // this.height = imageHeight;
        // this.uiProperty.imageWidth = imageWidth;
        // this.uiProperty.imageHeight = imageHeight;
        // this.uiProperty.width = imageWidth;
        // this.uiProperty.height = imageHeight;
        
        // this.repaint(attrs);
        var canvas = this.canvas;

        //此处重在重新计算 图元需要显示的图形
        this.setCanvas(null);
        this.setCanvas(canvas);
        this.setPosition(this.x,this.y);
    },

    /**
     * @名称   setSvgHeight
     * @功能   设置模型的高度
     * @author 李姣
     * @data   2018-10-31
     * @param  {[type]}   imageHeight [description]
     */
    setSvgHeight : function(imageHeight){
        this.height = imageHeight;
        
        // this.repaint(attrs);
        var canvas = this.canvas;

        //此处重在重新计算 图元需要显示的图形
        this.setCanvas(null);
        this.setCanvas(canvas);
        this.setPosition(this.x,this.y);
    },

    /**
     * 函数名称：Rainier.UI.V2.DeviceBoxFigure.createSet<br>
     * 函数功能：创建背景图片<br>
     * 参数输入：无<br>
     * 参数输出：无<br>
     * 函数返回：set:canvas.paper.set<br>
     * 异常信息：无<br>
     */
    createSet: function() {
        var set = this._super();
        this.onDynamicChange(this.currentState);
        return set;
    },

    setCurrentState : function(switchState){
        this.currentState = switchState;
        this.onDynamicChange(this.currentState);
    },

    updateDynamicSet : function(){
        this.onDynamicChange(this.currentState);
    },

    onDynamicChange : function(switchState){
        var _this = this;

        var imageOff = this.subImageList.get(0);
        var imageOn = this.subImageList.get(1);
        if (imageOn) {
            if (switchState) {
                imageOn.image.show();
            }
            else{
                imageOn.image.hide();
            }
        }
        if (imageOff) {
            if (switchState) {
                imageOff.image.hide();
            }
            else{
                imageOff.image.show();
            }
        }
    },
});